GtkEntryAccessible: also handle entry icon tooltip NULL in notify_gtk.
authorAlban Browaeys <prahal@yahoo.com>
Thu, 7 Mar 2013 14:54:04 +0000 (15:54 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 17 Mar 2013 20:12:52 +0000 (16:12 -0400)
To clear the tooltip one is to set the tooltip to NULL. Though
the GtkEntryAccessible expect this tooltip to not be NULL in
gtk_entry_accessible_notify_gtk (already handling this case
 in its _init).

Fixes:
** (epiphany:23914): CRITICAL **: atk_object_set_description: assertion
`description != NULL' failed
when epiphany g_object_set the entry icon tooltip to NULL (clear the
tooltip) in its find bar.

https://bugzilla.gnome.org/show_bug.cgi?id=695375

gtk/a11y/gtkentryaccessible.c

index 31414c6184bd11820bceebce1d6e2ed92a388d42..7d82e38e4211c017fb63c9d8187200994877c2d3 100644 (file)
@@ -572,9 +572,17 @@ gtk_entry_accessible_notify_gtk (GObject    *obj,
           gchar *text;
           text = gtk_entry_get_icon_tooltip_text (gtk_entry,
                                                     GTK_ENTRY_ICON_PRIMARY);
-          atk_object_set_description (priv->icons[GTK_ENTRY_ICON_PRIMARY],
+          if (text)
+            {
+              atk_object_set_description (priv->icons[GTK_ENTRY_ICON_PRIMARY],
                                       text);
-          g_free (text);
+              g_free (text);
+            }
+          else
+            {
+              atk_object_set_description (priv->icons[GTK_ENTRY_ICON_PRIMARY],
+                                      "");
+            }
         }
     }
   else if (g_strcmp0 (pspec->name, "secondary-icon-tooltip-text") == 0)
@@ -584,9 +592,17 @@ gtk_entry_accessible_notify_gtk (GObject    *obj,
           gchar *text;
           text = gtk_entry_get_icon_tooltip_text (gtk_entry,
                                                     GTK_ENTRY_ICON_SECONDARY);
-          atk_object_set_description (priv->icons[GTK_ENTRY_ICON_SECONDARY],
+          if (text)
+            {
+              atk_object_set_description (priv->icons[GTK_ENTRY_ICON_SECONDARY],
                                       text);
-          g_free (text);
+              g_free (text);
+            }
+          else
+            {
+              atk_object_set_description (priv->icons[GTK_ENTRY_ICON_PRIMARY],
+                                      "");
+            }
         }
     }
   else if (g_strcmp0 (pspec->name, "primary-icon-activatable") == 0)